/**
 * Copyright (c) 2000-2012 Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

package com.mad.bikepony.service.base;

import com.liferay.counter.service.CounterLocalService;

import com.liferay.portal.kernel.bean.BeanReference;
import com.liferay.portal.kernel.bean.IdentifiableBean;
import com.liferay.portal.kernel.dao.jdbc.SqlUpdate;
import com.liferay.portal.kernel.dao.jdbc.SqlUpdateFactoryUtil;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.service.BaseServiceImpl;
import com.liferay.portal.service.ResourceLocalService;
import com.liferay.portal.service.ResourceService;
import com.liferay.portal.service.UserLocalService;
import com.liferay.portal.service.UserService;
import com.liferay.portal.service.persistence.ResourcePersistence;
import com.liferay.portal.service.persistence.UserPersistence;

import com.mad.bikepony.model.Agent;
import com.mad.bikepony.service.AgentLocalService;
import com.mad.bikepony.service.AgentService;
import com.mad.bikepony.service.DeliveryLocalService;
import com.mad.bikepony.service.DeliveryService;
import com.mad.bikepony.service.QuestionLocalService;
import com.mad.bikepony.service.QuestionResponseLocalService;
import com.mad.bikepony.service.QuestionResponseService;
import com.mad.bikepony.service.QuestionService;
import com.mad.bikepony.service.persistence.AgentFinder;
import com.mad.bikepony.service.persistence.AgentPersistence;
import com.mad.bikepony.service.persistence.DeliveryFinder;
import com.mad.bikepony.service.persistence.DeliveryPersistence;
import com.mad.bikepony.service.persistence.QuestionPersistence;
import com.mad.bikepony.service.persistence.QuestionResponsePersistence;

import javax.sql.DataSource;

/**
 * The base implementation of the agent remote service.
 *
 * <p>
 * This implementation exists only as a container for the default service methods generated by ServiceBuilder. All custom service methods should be put in {@link com.mad.bikepony.service.impl.AgentServiceImpl}.
 * </p>
 *
 * @author nicola
 * @see com.mad.bikepony.service.impl.AgentServiceImpl
 * @see com.mad.bikepony.service.AgentServiceUtil
 * @generated
 */
public abstract class AgentServiceBaseImpl extends BaseServiceImpl
	implements AgentService, IdentifiableBean {
	/*
	 * NOTE FOR DEVELOPERS:
	 *
	 * Never modify or reference this class directly. Always use {@link com.mad.bikepony.service.AgentServiceUtil} to access the agent remote service.
	 */

	/**
	 * Returns the agent local service.
	 *
	 * @return the agent local service
	 */
	public AgentLocalService getAgentLocalService() {
		return agentLocalService;
	}

	/**
	 * Sets the agent local service.
	 *
	 * @param agentLocalService the agent local service
	 */
	public void setAgentLocalService(AgentLocalService agentLocalService) {
		this.agentLocalService = agentLocalService;
	}

	/**
	 * Returns the agent remote service.
	 *
	 * @return the agent remote service
	 */
	public AgentService getAgentService() {
		return agentService;
	}

	/**
	 * Sets the agent remote service.
	 *
	 * @param agentService the agent remote service
	 */
	public void setAgentService(AgentService agentService) {
		this.agentService = agentService;
	}

	/**
	 * Returns the agent persistence.
	 *
	 * @return the agent persistence
	 */
	public AgentPersistence getAgentPersistence() {
		return agentPersistence;
	}

	/**
	 * Sets the agent persistence.
	 *
	 * @param agentPersistence the agent persistence
	 */
	public void setAgentPersistence(AgentPersistence agentPersistence) {
		this.agentPersistence = agentPersistence;
	}

	/**
	 * Returns the agent finder.
	 *
	 * @return the agent finder
	 */
	public AgentFinder getAgentFinder() {
		return agentFinder;
	}

	/**
	 * Sets the agent finder.
	 *
	 * @param agentFinder the agent finder
	 */
	public void setAgentFinder(AgentFinder agentFinder) {
		this.agentFinder = agentFinder;
	}

	/**
	 * Returns the delivery local service.
	 *
	 * @return the delivery local service
	 */
	public DeliveryLocalService getDeliveryLocalService() {
		return deliveryLocalService;
	}

	/**
	 * Sets the delivery local service.
	 *
	 * @param deliveryLocalService the delivery local service
	 */
	public void setDeliveryLocalService(
		DeliveryLocalService deliveryLocalService) {
		this.deliveryLocalService = deliveryLocalService;
	}

	/**
	 * Returns the delivery remote service.
	 *
	 * @return the delivery remote service
	 */
	public DeliveryService getDeliveryService() {
		return deliveryService;
	}

	/**
	 * Sets the delivery remote service.
	 *
	 * @param deliveryService the delivery remote service
	 */
	public void setDeliveryService(DeliveryService deliveryService) {
		this.deliveryService = deliveryService;
	}

	/**
	 * Returns the delivery persistence.
	 *
	 * @return the delivery persistence
	 */
	public DeliveryPersistence getDeliveryPersistence() {
		return deliveryPersistence;
	}

	/**
	 * Sets the delivery persistence.
	 *
	 * @param deliveryPersistence the delivery persistence
	 */
	public void setDeliveryPersistence(DeliveryPersistence deliveryPersistence) {
		this.deliveryPersistence = deliveryPersistence;
	}

	/**
	 * Returns the delivery finder.
	 *
	 * @return the delivery finder
	 */
	public DeliveryFinder getDeliveryFinder() {
		return deliveryFinder;
	}

	/**
	 * Sets the delivery finder.
	 *
	 * @param deliveryFinder the delivery finder
	 */
	public void setDeliveryFinder(DeliveryFinder deliveryFinder) {
		this.deliveryFinder = deliveryFinder;
	}

	/**
	 * Returns the question local service.
	 *
	 * @return the question local service
	 */
	public QuestionLocalService getQuestionLocalService() {
		return questionLocalService;
	}

	/**
	 * Sets the question local service.
	 *
	 * @param questionLocalService the question local service
	 */
	public void setQuestionLocalService(
		QuestionLocalService questionLocalService) {
		this.questionLocalService = questionLocalService;
	}

	/**
	 * Returns the question remote service.
	 *
	 * @return the question remote service
	 */
	public QuestionService getQuestionService() {
		return questionService;
	}

	/**
	 * Sets the question remote service.
	 *
	 * @param questionService the question remote service
	 */
	public void setQuestionService(QuestionService questionService) {
		this.questionService = questionService;
	}

	/**
	 * Returns the question persistence.
	 *
	 * @return the question persistence
	 */
	public QuestionPersistence getQuestionPersistence() {
		return questionPersistence;
	}

	/**
	 * Sets the question persistence.
	 *
	 * @param questionPersistence the question persistence
	 */
	public void setQuestionPersistence(QuestionPersistence questionPersistence) {
		this.questionPersistence = questionPersistence;
	}

	/**
	 * Returns the question response local service.
	 *
	 * @return the question response local service
	 */
	public QuestionResponseLocalService getQuestionResponseLocalService() {
		return questionResponseLocalService;
	}

	/**
	 * Sets the question response local service.
	 *
	 * @param questionResponseLocalService the question response local service
	 */
	public void setQuestionResponseLocalService(
		QuestionResponseLocalService questionResponseLocalService) {
		this.questionResponseLocalService = questionResponseLocalService;
	}

	/**
	 * Returns the question response remote service.
	 *
	 * @return the question response remote service
	 */
	public QuestionResponseService getQuestionResponseService() {
		return questionResponseService;
	}

	/**
	 * Sets the question response remote service.
	 *
	 * @param questionResponseService the question response remote service
	 */
	public void setQuestionResponseService(
		QuestionResponseService questionResponseService) {
		this.questionResponseService = questionResponseService;
	}

	/**
	 * Returns the question response persistence.
	 *
	 * @return the question response persistence
	 */
	public QuestionResponsePersistence getQuestionResponsePersistence() {
		return questionResponsePersistence;
	}

	/**
	 * Sets the question response persistence.
	 *
	 * @param questionResponsePersistence the question response persistence
	 */
	public void setQuestionResponsePersistence(
		QuestionResponsePersistence questionResponsePersistence) {
		this.questionResponsePersistence = questionResponsePersistence;
	}

	/**
	 * Returns the counter local service.
	 *
	 * @return the counter local service
	 */
	public CounterLocalService getCounterLocalService() {
		return counterLocalService;
	}

	/**
	 * Sets the counter local service.
	 *
	 * @param counterLocalService the counter local service
	 */
	public void setCounterLocalService(CounterLocalService counterLocalService) {
		this.counterLocalService = counterLocalService;
	}

	/**
	 * Returns the resource local service.
	 *
	 * @return the resource local service
	 */
	public ResourceLocalService getResourceLocalService() {
		return resourceLocalService;
	}

	/**
	 * Sets the resource local service.
	 *
	 * @param resourceLocalService the resource local service
	 */
	public void setResourceLocalService(
		ResourceLocalService resourceLocalService) {
		this.resourceLocalService = resourceLocalService;
	}

	/**
	 * Returns the resource remote service.
	 *
	 * @return the resource remote service
	 */
	public ResourceService getResourceService() {
		return resourceService;
	}

	/**
	 * Sets the resource remote service.
	 *
	 * @param resourceService the resource remote service
	 */
	public void setResourceService(ResourceService resourceService) {
		this.resourceService = resourceService;
	}

	/**
	 * Returns the resource persistence.
	 *
	 * @return the resource persistence
	 */
	public ResourcePersistence getResourcePersistence() {
		return resourcePersistence;
	}

	/**
	 * Sets the resource persistence.
	 *
	 * @param resourcePersistence the resource persistence
	 */
	public void setResourcePersistence(ResourcePersistence resourcePersistence) {
		this.resourcePersistence = resourcePersistence;
	}

	/**
	 * Returns the user local service.
	 *
	 * @return the user local service
	 */
	public UserLocalService getUserLocalService() {
		return userLocalService;
	}

	/**
	 * Sets the user local service.
	 *
	 * @param userLocalService the user local service
	 */
	public void setUserLocalService(UserLocalService userLocalService) {
		this.userLocalService = userLocalService;
	}

	/**
	 * Returns the user remote service.
	 *
	 * @return the user remote service
	 */
	public UserService getUserService() {
		return userService;
	}

	/**
	 * Sets the user remote service.
	 *
	 * @param userService the user remote service
	 */
	public void setUserService(UserService userService) {
		this.userService = userService;
	}

	/**
	 * Returns the user persistence.
	 *
	 * @return the user persistence
	 */
	public UserPersistence getUserPersistence() {
		return userPersistence;
	}

	/**
	 * Sets the user persistence.
	 *
	 * @param userPersistence the user persistence
	 */
	public void setUserPersistence(UserPersistence userPersistence) {
		this.userPersistence = userPersistence;
	}

	public void afterPropertiesSet() {
	}

	public void destroy() {
	}

	/**
	 * Returns the Spring bean ID for this bean.
	 *
	 * @return the Spring bean ID for this bean
	 */
	public String getBeanIdentifier() {
		return _beanIdentifier;
	}

	/**
	 * Sets the Spring bean ID for this bean.
	 *
	 * @param beanIdentifier the Spring bean ID for this bean
	 */
	public void setBeanIdentifier(String beanIdentifier) {
		_beanIdentifier = beanIdentifier;
	}

	public Object invokeMethod(String name, String[] parameterTypes,
		Object[] arguments) throws Throwable {
		return _clpInvoker.invokeMethod(name, parameterTypes, arguments);
	}

	protected Class<?> getModelClass() {
		return Agent.class;
	}

	protected String getModelClassName() {
		return Agent.class.getName();
	}

	/**
	 * Performs an SQL query.
	 *
	 * @param sql the sql query
	 */
	protected void runSQL(String sql) throws SystemException {
		try {
			DataSource dataSource = agentPersistence.getDataSource();

			SqlUpdate sqlUpdate = SqlUpdateFactoryUtil.getSqlUpdate(dataSource,
					sql, new int[0]);

			sqlUpdate.update();
		}
		catch (Exception e) {
			throw new SystemException(e);
		}
	}

	@BeanReference(type = AgentLocalService.class)
	protected AgentLocalService agentLocalService;
	@BeanReference(type = AgentService.class)
	protected AgentService agentService;
	@BeanReference(type = AgentPersistence.class)
	protected AgentPersistence agentPersistence;
	@BeanReference(type = AgentFinder.class)
	protected AgentFinder agentFinder;
	@BeanReference(type = DeliveryLocalService.class)
	protected DeliveryLocalService deliveryLocalService;
	@BeanReference(type = DeliveryService.class)
	protected DeliveryService deliveryService;
	@BeanReference(type = DeliveryPersistence.class)
	protected DeliveryPersistence deliveryPersistence;
	@BeanReference(type = DeliveryFinder.class)
	protected DeliveryFinder deliveryFinder;
	@BeanReference(type = QuestionLocalService.class)
	protected QuestionLocalService questionLocalService;
	@BeanReference(type = QuestionService.class)
	protected QuestionService questionService;
	@BeanReference(type = QuestionPersistence.class)
	protected QuestionPersistence questionPersistence;
	@BeanReference(type = QuestionResponseLocalService.class)
	protected QuestionResponseLocalService questionResponseLocalService;
	@BeanReference(type = QuestionResponseService.class)
	protected QuestionResponseService questionResponseService;
	@BeanReference(type = QuestionResponsePersistence.class)
	protected QuestionResponsePersistence questionResponsePersistence;
	@BeanReference(type = CounterLocalService.class)
	protected CounterLocalService counterLocalService;
	@BeanReference(type = ResourceLocalService.class)
	protected ResourceLocalService resourceLocalService;
	@BeanReference(type = ResourceService.class)
	protected ResourceService resourceService;
	@BeanReference(type = ResourcePersistence.class)
	protected ResourcePersistence resourcePersistence;
	@BeanReference(type = UserLocalService.class)
	protected UserLocalService userLocalService;
	@BeanReference(type = UserService.class)
	protected UserService userService;
	@BeanReference(type = UserPersistence.class)
	protected UserPersistence userPersistence;
	private String _beanIdentifier;
	private AgentServiceClpInvoker _clpInvoker = new AgentServiceClpInvoker();
}